#ifndef CUSTOMER_HH
#define CUSTOMER_HH

#include <string>
#include <memory>
#include <vector>
#include "Account.hh"

namespace mini_bank {

class Customer {
private:
    std::string name;
    std::unique_ptr<SavingsAccount> savings;
    std::unique_ptr<CheckingAccount> checking;

public:
    Customer(const std::string& name,
             const std::string& savingsId,
             const std::string& checkingId,
             double savingsInitial = 0.0,  // 新增初始余额参数
             double checkingInitial = 0.0);

    ~Customer() = default;

    std::string getName() const;
    Account* getSavings() const;
    Account* getChecking() const;

    std::vector<Transaction> getAllTransactions() const;
};

} // namespace mini_bank

#endif // CUSTOMER_HH
